#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef int LNDATATYPE;
typedef struct ListNode
{
	LNDATATYPE data;
	struct ListNode* prev;
	struct ListNode* next;
}ListNode;

ListNode* ListInit();
void ListDestroy(ListNode*phead);
void ListPushBack(ListNode*phead, LNDATATYPE x);
void ListPrint(ListNode* phead);
ListNode* CreateListNode(LNDATATYPE x);

void LishPushFront(ListNode* phead, LNDATATYPE x);
void ListPopFront(ListNode* phead);
void ListPopBack(ListNode* phead);
ListNode* ListFInd(ListNode* phead, LNDATATYPE x);

void ListInsert(LNDATATYPE x, ListNode* pos);
void ListErase(ListNode* pos);